/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package modelo;

import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author Mike
 */
@Entity
@Table(name = "proyecto")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Proyecto.findAll", query = "SELECT p FROM Proyecto p"),
    @NamedQuery(name = "Proyecto.findByIdProyecto", query = "SELECT p FROM Proyecto p WHERE p.proyectoPK.idProyecto = :idProyecto"),
    @NamedQuery(name = "Proyecto.findByEstudiante1", query = "SELECT p FROM Proyecto p WHERE p.proyectoPK.estudiante1 = :estudiante1"),
    @NamedQuery(name = "Proyecto.findByEstudiante2", query = "SELECT p FROM Proyecto p WHERE p.proyectoPK.estudiante2 = :estudiante2"),
    @NamedQuery(name = "Proyecto.findByTitulo", query = "SELECT p FROM Proyecto p WHERE p.titulo = :titulo"),
    @NamedQuery(name = "Proyecto.findByDirector", query = "SELECT p FROM Proyecto p WHERE p.director = :director"),
    @NamedQuery(name = "Proyecto.findByTematica", query = "SELECT p FROM Proyecto p WHERE p.tematica = :tematica"),
    @NamedQuery(name = "Proyecto.findByEvaluador1", query = "SELECT p FROM Proyecto p WHERE p.evaluador1 = :evaluador1"),
    @NamedQuery(name = "Proyecto.findByEvaluador2", query = "SELECT p FROM Proyecto p WHERE p.evaluador2 = :evaluador2"),
    @NamedQuery(name = "Proyecto.findByTipo", query = "SELECT p FROM Proyecto p WHERE p.tipo = :tipo"),
    @NamedQuery(name = "Proyecto.findByNotaEst1", query = "SELECT p FROM Proyecto p WHERE p.notaEst1 = :notaEst1"),
    @NamedQuery(name = "Proyecto.findByNotaEst2", query = "SELECT p FROM Proyecto p WHERE p.notaEst2 = :notaEst2"),
    @NamedQuery(name = "Proyecto.findByIdFaseActual", query = "SELECT p FROM Proyecto p WHERE p.idFaseActual = :idFaseActual"),
    @NamedQuery(name = "Proyecto.findByFacultad", query = "SELECT p FROM Proyecto p WHERE p.Facultad = :Facultad")})
public class Proyecto implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected ProyectoPK proyectoPK;
    @Basic(optional = false)
    @Column(name = "Titulo")
    private String titulo;
    @Basic(optional = false)
    @Column(name = "Director")
    private String director;
    @Basic(optional = false)
    @Column(name = "Tematica")
    private String tematica;
    @Basic(optional = false)
    @Column(name = "Evaluador1")
    private String evaluador1;
    @Basic(optional = false)
    @Column(name = "Evaluador2")
    private String evaluador2;
    @Basic(optional = false)
    @Column(name = "Tipo")
    private String tipo;
    @Basic(optional = false)
    @Column(name = "nota_est1")
    private int notaEst1;
    @Basic(optional = false)
    @Column(name = "nota_est2")
    private int notaEst2;
    @Basic(optional = false)
    @Column(name = "idFase_Actual")
    private int idFaseActual;
    @Basic(optional = false)
    @Column(name = "Facultad")
    private String Facultad;

    public Proyecto() {
    }

    public Proyecto(ProyectoPK proyectoPK) {
        this.proyectoPK = proyectoPK;
    }

    public Proyecto(ProyectoPK proyectoPK, String titulo, String director, String tematica, String evaluador1, String evaluador2, String tipo, int notaEst1, int notaEst2, int idFaseActual, String Facultad) {
        this.proyectoPK = proyectoPK;
        this.titulo = titulo;
        this.director = director;
        this.tematica = tematica;
        this.evaluador1 = evaluador1;
        this.evaluador2 = evaluador2;
        this.tipo = tipo;
        this.notaEst1 = notaEst1;
        this.notaEst2 = notaEst2;
        this.idFaseActual = idFaseActual;
        this.Facultad = Facultad;
    }

    public Proyecto(int idProyecto, String estudiante1, String estudiante2) {
        this.proyectoPK = new ProyectoPK(idProyecto, estudiante1, estudiante2);
    }

    public ProyectoPK getProyectoPK() {
        return proyectoPK;
    }

    public void setProyectoPK(ProyectoPK proyectoPK) {
        this.proyectoPK = proyectoPK;
    }

    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    public String getDirector() {
        return director;
    }

    public void setDirector(String director) {
        this.director = director;
    }

    public String getTematica() {
        return tematica;
    }

    public void setTematica(String tematica) {
        this.tematica = tematica;
    }

    public String getEvaluador1() {
        return evaluador1;
    }

    public void setEvaluador1(String evaluador1) {
        this.evaluador1 = evaluador1;
    }

    public String getEvaluador2() {
        return evaluador2;
    }

    public void setEvaluador2(String evaluador2) {
        this.evaluador2 = evaluador2;
    }

    public String getTipo() {
        return tipo;
    }

    public void setTipo(String tipo) {
        this.tipo = tipo;
    }

    public int getNotaEst1() {
        return notaEst1;
    }

    public void setNotaEst1(int notaEst1) {
        this.notaEst1 = notaEst1;
    }

    public int getNotaEst2() {
        return notaEst2;
    }

    public void setNotaEst2(int notaEst2) {
        this.notaEst2 = notaEst2;
    }

    public int getIdFaseActual() {
        return idFaseActual;
    }

    public void setIdFaseActual(int idFaseActual) {
        this.idFaseActual = idFaseActual;
    }

    public String getFacultad() {
        return Facultad;
    }

    public void setFacultad(String Facultad) {
        this.Facultad = Facultad;
    }

    
    
    
    @Override
    public int hashCode() {
        int hash = 0;
        hash += (proyectoPK != null ? proyectoPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Proyecto)) {
            return false;
        }
        Proyecto other = (Proyecto) object;
        if ((this.proyectoPK == null && other.proyectoPK != null) || (this.proyectoPK != null && !this.proyectoPK.equals(other.proyectoPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "modelo.Proyecto[ proyectoPK=" + proyectoPK + " ]";
    }
    
}
